﻿using Shell.Library.Models.Interface;
using System;
using Catel.MVVM;

namespace Shell.Library.Services
{
    public interface IShellService
    {
        bool ShowDebuggingWindow { get; set; }

        void ShowDocument<TViewModel>(object tag = null)where TViewModel : IViewModel, new();

        void ShowDocument<TViewModel>(TViewModel viewModel, object tag = null) where TViewModel : IViewModel;

        void ShowToolBoxItem<TViewModel>(object tag = null) where TViewModel : IViewModel, new();

        void ShowToolBoxItem<TViewModel>(TViewModel viewModel, object tag = null) where TViewModel : IViewModel;

        void AddRibbonItem(IRibbonItem ribbonItem);
        
        void RemoveRibbonItem(IRibbonItem ribbonItem);
    }
}